Multi-processor system, disk controller using the same and nondisruptive maintenance method thereof

ABSTRACT

A plurality of processors of a disk controller are divided into a plurality of clusters. In a normal operation, data is transferred between a host computer and a disk drive in a cluster non-restricted mode in which a job can be distributedly processed among processors belonging to any clusters without regard to cluster. In response to a program version-up command from an operator, the cluster mode is shifted from the cluster non-restricted mode to a cluster restricted mode in which the cluster to which processors which are permitted to distributedly process one job belong is restricted. When the shifting to the cluster restricted mode is completed, one cluster is selected as a cluster to be maintained and the programs to be executed by the processors belonging to the cluster to be maintained are versioned up by new programs. When the programs of all processors of the cluster to be maintained have been versioned up, the acceptance of a new job by the processors belonging to the cluster to be maintained is resumed and the execution of the new programs is started. The selection of the cluster, the version-up of the programs and the start of the execution of the new programs are repeated sequentially for all clusters. When the version-up of the programs of all processors is completed, the cluster mode is returned from the cluster restricted mode to the cluster non-restricted mode.

BACKGROUND OF THE INVENTION

[0001] The present invention relates to a multiprocessor system and aprogram version-up method therefor. More particularly, it relates to adisk controller comprising a multi-processor system including aplurality of processors and a control program version-up methodtherefor.

[0002] In the multi-processor system, processing of a job may beefficiently conducted by dividing the job into a plurality of processorsfor processing. As one form of application of the multi-processorsystem, a disk controller of a multi-processor configuration has beenput into practice. Such a disk controller is disclosed in JP-A-2-62623.In the disk controller disclosed in JP-A-2-62623, a job such as readingor writing of data is distributedly executed by a processor whichcontrols data transfer between a disk controller and a host computer,and a processor which controls data transfer between the disk controllerand a disk drive. Specifically, for example, data read from one diskdrive by one processor is transferred to the host computer by anotherprocessor. Thus, the data transfer process between the host computer andthe disk controller and the data transfer process between the disk driveand the disk controller may be executed in parallel and efficient datatransfer mat be attained.

SUMMARY OF THE INVENTION

[0003] In the disk controller of the multi-processor configuration asdescribed above, it is possible to stop the processing by someprocessors and continue the data transfer control by the otherprocessors to maintain fault processors. However, in such a maintenancemethod, it is a premise that the processors which distributedly processa job execute programs of the same version. When the programs to beexecuted by the respective processors are to be versioned up and themaintenance is conducted in this manner, there occurs a period in whichthe programs of different versions coexist and one job may be shared bythe processors which execute the programs of different versions. In sucha case, there may be no assurance of consistent processing of the job.As a result, when the versions of the programs executed by theprocessors are to be versioned up, the system has to be wholly stopped.

[0004] It is an object of the present invention to solve the problemencountered in the prior art system and enable the maintenanceprocessing such as the version-up of the programs while continuing theprocessing by the system.

[0005] In order to achieve the above object, in the multi-processorsystem of the present invention, each processor belongs to one of aplurality of logical clusters. The system includes a clusternon-restricted mode in which the distributed processing of one job amongprocessors belonging to any clusters is permitted, and a clusterrestricted mode in which the distributed processing of one job amongprocessors belonging to different clusters is restricted.

[0006] In a maintenance method of the present invention, in themulti-processor system described above, the cluster mode is shifted fromthe cluster non-restricted mode to the cluster restricted mode and acluster is selected from the plurality of clusters. The acceptance of anew job in the selected cluster is inhibited and the maintenanceprocessing such as the version-up of the program of the whole processorsin the selected cluster is conducted and the acceptance and processingof a new job among processors in the selected clusters is permittedagain. The selection of the cluster and the maintenance processing areeffected sequentially for each of the clusters, and after themaintenance processing has been completed for the processors of allclusters, the cluster mode is returned to the cluster non-restrictedmode. During the maintenance of the processors in the selected cluster,the processors in the non-selected clusters are restricted to executethe processing of the job in the cluster restricted mode. In thismanner, even if the processing of the job is continued by the processorswhich are not to be maintained during the maintenance of the system suchas the version-up of the program, the distributed processing of the jobby the programs of different versions may be prevented and themaintenance process may be conducted without wholly stopping the system.

BRIEF DESCRIPTION OF THE DRAWINGS

[0007]FIG. 1 shows a configuration of a disk controller in accordancewith the present invention,

[0008]FIG. 2 shows a format of cluster allocation information stored ina control memory,

[0009]FIG. 3 shows a format of execution cluster indication informationstored in the control memory,

[0010]FIG. 4 shows a format of I/O job execution control informationstored in the control memory,

[0011]FIG. 5 shows a format of cluster operation mode indicationinformation stored in the control memory,

[0012]FIG. 6 shows a main flow chart of a version-up process of a diskcontrol program,

[0013]FIG. 7 shows a detailed flow chart of the program version-upprocess for a cluster A,

[0014]FIG. 8 shows a detailed flow chart of the program version-upprocess for a cluster B,

[0015]FIG. 9 shows a configuration of a disk controller in accordancewith another embodiment of the present invention,

[0016]FIG. 10 shows a format of distributedly processable clustercombination information,

[0017]FIG. 11 shows another format of the distributedly processablecluster combination information, and

[0018]FIG. 12 shows a configuration of the disk controller in accordancewith a further embodiment of the present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0019]FIG. 1 shows a configuration of a disk controller in accordancewith a first embodiment of the present invention. A disk controller 200comprises a plurality of processors 211, 1212, 213, 214, 221, 222, 223and 224 each having a local memory LM, service processors 215 and 225having disk drives 216 and 226, respectively, each storing a controlprogram, and a shared memory 230 having a cache memory 231 and a controlmemory 232 and commonly accessible by the processors 211-214 and 221-224and the service processors 215 and 216. Of the processors belonging tothe disk controller 200, the processors 211, 212, 221 and 222 areconnected to a host computer 10 through a channel controller 30. Theprocessors 213, 214, 223 and 224 are connected to disk drives 40 and 41.Hereinafter, in order to discriminate those processors, the former arerefereed to as channel control processors and the latter are referred toas drive control processors. The local memory of each of the processors211-214 and 221-224 stores a data transfer program for controlling thedata transfer between the disk drives 40 and 41 and the channelcontroller 30 and a maintenance support program for supporting thesystem maintenance. The service processors 215 and 225 are connected toa maintenance panel 240 which is provided as an interface to anoperator.

[0020] In the present embodiment, the processors 211-214 and 221-224 areof a multi-processor configuration. Those processors are divided into acluster A 210 which comprises the processors 211-214 and a cluster B 220which comprises the processors 221-224. The service processor 215belongs to the cluster A 210 and the service processor 225 belongs tothe cluster B 220.

[0021]FIG. 2 shows a logical format of cluster allocation informationstored in the control memory 232. The cluster allocation information 500has three areas, a processor number area 510, an allocated clusternumber area 520 and a processor attribute area 530. The processor numberarea stores the processor numbers allocated to the processors 211-214and 221-224. FIG. 2 shows that, in the present embodiment, 211, 212,213, 214, 221, 222, 223 and 224 are allocated to the processors as theprocessor numbers. (In the present embodiment, the processor numbersallocated to the processors correspond to the reference numerals in FIG.1 for the sake of convenience.) The allocated cluster number area 520stores the cluster number of the cluster to which each cluster belongs.FIG. 2 shows that the processors 211, 212, 213 and 214 belongs to thecluster of the cluster number ‘1’ (the cluster A 210 in FIG. 1) and theprocessors 221, 222, 223 and 224 belong to the cluster of the clusternumber ‘2’ (the cluster B 220 in FIG. 1). The processor attribute area530 stores information indicating the attributes of the processors, thatis, information indication which one of the channel control processor(channel control CPU) and the drive control processor (drive controlCPU) each processor belongs to. FIG. 2 shows that the processors 211,212, 221 and 222 are channel control processors and the processors 213,214, 223 and 224 are drive control processors.

[0022]FIG. 3 shows a format of execution cluster indication informationstored in the control memory 232. The execution cluster indicationinformation 600 comprises an execution cluster indication area 610 whichstores information indicating a cluster mode when the data istransferred. In the present embodiment, the cluster mode includes acluster non-restricted mode in which any one of the clusters 210 and 220may be used for the data transfer and a cluster restricted mode in whichonly one of the clusters may be used. When the data transfer is to beconducted in the cluster non-restricted mode, ‘1’ is stored in theexecution cluster indication area 610, and when the data transfer is tobe conducted in the cluster restricted mode, ‘2’ is stored.

[0023]FIG. 4 shows a format of I/O job execution control informationstored in the control memory 232. The I/O job execution controlinformation 800 is provided for each of the disk drives 40 and 41connected to the disk controller 200. The I/O job execution controlinformation 800 comprises access command request information relating toan access command issued from the host computer 10, executable processordesignation information for indicating a processor which may execute theaccess command issued to the corresponding disk drive and I/O requestexecution state information for indicating an execution state of theaccess command to the corresponding disk drive. The access commandrequest information comprises a command type area 811, a drive numberarea 812, a cylinder number area 813, a tack number area 814 and arecord number area 815. The command type area 811 stores a command typeof the access command issued to the disk drive corresponding to the I/Ojob execution control information. The access command may include a readcommand for reading data from the disk drive and a write command forwriting data to the disk drive. The drive number area 812 stores thedrive number of the disk drive to be accessed in accordance with the I/Ojob execution control information. The cylinder area 813, the tracknumber area 814 and the record number area 815 store the cylindernumber, the track number and the record number indicating the area to beaccessed in the disk drive. The executable processor designationinformation comprises executable processor designation bit map 821. Theexecutable processor designation bit map 821 has bits for the processors211-214 and 221-224. The bit corresponding to the processor which canexecute the access command registered in the access command requestinformation is set to ‘1’ (set), and the bit corresponding to theprocessor which cannot execute the access command is set to ‘0’ (reset).The I/O request execution state information has an I/O request executionstate area 831 which stores information indicating the execution stateof the access command. The I/O request execution state area 831 storesthe information indicating the execution state of the access command,that is, ‘0’ when there is no execution request for the access command,‘1’ when waiting for the process by the drive control processor, ‘2’when waiting for the process by the channel control processor, and ‘3’when any process is being executed.

[0024]FIG. 5 shows a format of cluster operation mode indicationinformation stored in the control memory 232. The cluster operation modeindication information 700 comprises a cluster number area 710 and anoperation mode area 720. The cluster number area 710 stores the clusternumber of the cluster. The operation mode area stores the informationindicating in which operation mode the corresponding cluster isoperating. In the present embodiment, the operation mode may include anormal operation mode for conducting a normal operation, a suspendedmode in which the access command is not accepted and a maintenanceoperation mode when a processor belonging to the cluster 210 and aprocessor belonging to the cluster 220 are executing data transferprograms of different versions. In the normal operation mode, ‘1’ isstored in the operation mode area 720, in the suspended mode, ‘2’ isstored, and in the maintenance operation mode, ‘3’ is stored. Thecluster operation mode indication information 700 is referred by theprocessors at a predetermined timing, for example, in synchronism withthe search of the executable job.

[0025] In the present embodiment, the data transfer control process (thedata read process herein) conducted by the processors of the diskcontroller 200 is executed as follows.

[0026] When the host computer 10 is to access to the data stored in thedisk drives 40 and 41, it delivers an access command indicating theaccess to the channel controller 30. The channel controller 30 deliversthe access command received from the host computer 10 to one of thechannel control processors 211, 212, 221 and 222 of the disk controller200. It is now assumed that the access command is the read request tothe disk drive 40 and the access command is delivered to the channelcontrol processor 211 of the cluster 210.

[0027] When the channel control processor 211 receives the accesscommand from the channel controller 30, it refers the I/O requestexecution state area 831 of the I/O job execution control informationcorresponding to the disk drive 40, and if it is ‘0’ (no executionrequest), it updates the information in the I/O request execution statearea 831 to ‘3’ (executing). Then, the channel control processor 211stores the information designated by the access command to the areas811-815 of the access command request information. When the informationstored in the I/O request execution state area 831 is other than ‘0’,the channel control processor 211 returns a busy response to the channelcontroller 30. The channel control processor 211 refers the executioncluster indication information 600 to check the information stored inthe execution cluster indication area 610. When the information storedin the execution cluster indication area 610 is ‘1’ (clusternon-restricted mode), the field (executability indication field)corresponding to the drive control processors 213, 214, 223 and 224, ofthe executable processor designation bit map area 821 of the I/O jobexecution control information 800 is set to ‘1’, that is, a bitindicating the executability. On the other hand, when the executioncluster indication area 610 stores ‘2’ (cluster restricted mode), theexecutability indication fields corresponding to the drive controlprocessors belonging to the same cluster as that to which its ownprocessor belongs, that is, the drive control processors 213 and 214 ofthe cluster A 210, of the executable processor designation bit map area821 are set to ‘1’. Then, the channel control processor 211 sets ‘1’indicating the waiting for the execution by the drive control processorin the I/O request execution state area 831.

[0028] Any one of the drive control processors (the drive controlprocessor 214) refers the I/O request execution state area 831 of theI/O job execution control information to check whether ‘1’ indicatingthe waiting for the drive control processor has been set or not. If theI/O request execution state area 831 is set to ‘1’, it further checkswhether the executability indication field corresponding to its ownprocessor of the executable processor designation bit map area of theI/O execution control information 800 is set to ‘1’ indicating theexecutability. If the corresponding executability indication field isset to ‘1’, the I/O request execution area 831 is set to ‘3’ and thedata is read from the target disk drive in accordance with theinformation stored in the areas (the command type 811, the drive number812, the cylinder number 813, the track number 814 and the record number815) of the access command request information and it is stored in thecache memory 232 provided in the shared memory 230. Then, the I/Orequest execution state area of the I/O job execution controlinformation 800 is set to ‘2’ indicating the waiting for the channelcontrol processor. The execution cluster indication information 600 isreferred and if the execution cluster indication area 610 is set to ‘1’(cluster non-restricted mode), the executability indication fieldscorresponding to the channel control processors 211, 212, 221 and 222,of the executable processor designation bit map area 821 are set to ‘1’.On the other hand, if the information stored in the execution clusterindication area 610 is ‘2’ indicating the cluster restricted mode, thedrive control processor 223 sets ‘1’ only in the executabilityindication fields corresponding to the channel control processors 211and 212 belonging to the same cluster as that to which its own processorbelongs, that is, the cluster A 210.

[0029] Then, any one of the channel control processors (the channelcontrol processor 212) refers the I/O request execution state area 831of the I/O job execution control information 800 and checks if it is setto ‘2’ (waiting for the channel control processor) or not. If the I/Orequest execution state area 831 is set to ‘2’, it further refers theexecutable processor designation bit map area 821 to check whether theexecutability indication field corresponding to its own processor is setto ‘1’ or not. If the corresponding bit of the executability indicationfield is set, the channel control processor 212 sets the I/O requestexecution state area 831 to ‘3’ and transfers the corresponding datastored in the cache memory 232 to the channel controller 30. Then, itsets the I/O request execution state area 831 to ‘0’ indication noexecution request.

[0030] In the data read process by the disk controller of the presentembodiment, the process is conducted in the same manner as the data readprocess in the disk controller of a conventional multi-processorconfiguration except that each processor refers the execution clusterindication information 600 and the cluster operation mode indicationinformation 700, and refers the executable processor designationinformation (the executable processor designation bit map 821) andcontinues the processing while updating. Accordingly, the explanationthereof is omitted.

[0031]FIG. 6 shows a flow chart of a maintenance process (programversion-up process) of the disk controller 200 of the presentembodiment.

[0032] In the maintenance process, an operator first stores a newversion data transfer control program in the control program storingdisk drives 216 and 226 of the service processors 215 and 216 throughthe maintenance panel 240 (step 110). The operator then commands thestart of the control program version-up process to the service processor215 through the maintenance panel 240 (step 120).

[0033] When the service processor 215 receives the command to start thecontrol program version-up process, it sets ‘2’ indicating the clusterrestricted mode to the execution cluster indication information 600stored in the control memory 232 (step 125). Then, when the channelcontrol processors 211, 212, 213 and 214 receive a new access commandfrom the channel controller 30, they set only the bits corresponding tothe processors of the cluster to which its own processor belongs, in theexecutable processor designation bit map area 821 of the I/O jobexecution control information 800. Thus, the cluster non-restricted jobsoon disappears. Thereafter, the service processor 215 executesversion-up process of the control programs stored in the local memoriesof the processors 211, 212, 213 and 214 belonging to the cluster A 210(step 130). While the version-up process for the data transfer controlprograms of the processors of the cluster A 210 is executed, theprocessors 221, 222, 223 and 224 of the cluster B 220 execute the datatransfer control process in the cluster restricted mode by the datatransfer control programs of old version.

[0034] When the version-up process for the data transfer controlprograms of the processors of the cluster A 210 is completed, theservice processor 215 requests the execution of the program version-upprocess of the processors belonging to the cluster B 220 to the serviceprocessor 225 (step 140). When the service processor receives therequest, it executes the version-up process of the data transfer controlprograms stored in the local memories of the processors 221, 222, 223and 224 of the cluster B 220 (step 145). When the version-up process iscompleted, the processors 211, 212, 213 and 214 belonging to the clusterA 210 starts the execution of the new version programs and execute thedata transfer control process in the cluster restricted mode while theversion-up process of the programs of the processors of the cluster B220 is executed.

[0035] When the service processor 215 confirms the completion of theversion-up process of the data transfer control program of the cluster B220 (step 150), it sets the operation mode area 720 of the clusteroperation mode indication information 700 to ‘1’ indicating the normaloperation mode and sets the execution cluster indication information 600to ‘1’ indicating the cluster non-restricted mode (step 155). Themaintenance panel 240 displays a message indicating the completion ofthe version-up process of the data transfer control programs (step 160).

[0036]FIG. 7 shows a flow chart of the version-up process of the datatransfer control program for the cluster A 210 conducted in the step130.

[0037] The processors 211, 212, 213 and 214 belonging to the cluster A210 refer the executable processor designation bit map area 821 of theI/O job execution control information 800 of all disk drives to confirmthat there is no cluster non-restricted job (step 310). Specifically,they confirm whether the bit indicating the executability to theprocessors of both the clusters 210 and 220 is set in the executableprocessor designation bit map area of the I/O job execution controlinformation 800 of each disk drive. The confirmation is effected whileeach processor recognizes that the cluster restricted mode is indicatedby the execution cluster indication information 600 at the completion ofexecution of the job.

[0038] The service processor 215 sets ‘2’ indicating the suspended modein the operation mode area 720 corresponding to the cluster A 210 of thecluster operation mode indication information 700 (step 315). When thechannel control processors 211 and 212 of the cluster A 210 confirm thatthe operation mode is set in the suspended mode, they inform to thechannel controller 30 the non-acceptance of a new access command (step320). By the process of the step 320, the job to be processed by theprocessors of the cluster A 210 is no longer registered.

[0039] The processors 211, 212, 213 and 214 of the cluster A 210 referthe executable processor designation bit map area 821 of the I/O jobexecution control information 800 to confirm that the bit correspondingto the processors of the cluster A 210 is not set to ‘1’ indicating theexecutability (step 325). When the processors 211, 212, 213 and 214confirm that the bit corresponding to the processors of the cluster A ofthe executable processor designation bit map area 821 is not set, theyinforms to the service processor 216 the completion of the shift of itsown processor to the suspended state (step 330).

[0040] When the service processor 215 receives the notice of completionof the shift of all processors of the cluster A to the suspended statein the step 330, it sets ‘3’ indicating the maintenance operation modein the operation mode area 720 corresponding to the cluster A of thecluster operation mode designation information 700 (step 335). When theprocessors 211, 212, 213 and 214 confirm that the operation mode hasbeen set to the maintenance operation mode, they request the transfer ofthe data transfer program of a new version to the service processor 215(step 340). In response to the request, the service processor 215transfers the data transfer control program of the new version stored inthe disk drive 216 in the step 110 (FIG. 6) to the processors 211, 212,213 and 214 (step 345). The processors 211, 212, 213 and 214 store thereceived data transfer programs in the local memories of their ownprocessors.

[0041] When the data transfer control programs of the new version havebeen stored in the processors of the cluster A, the service processor215 sets the information indicating the completion of the storage of theprogram in the control memory 232 and informs it to the processors. Inresponse to the notice, the processors start the execution of the newprograms. When the channel control processors 211 and 212 confirm thestorage of the new data transfer control programs in the local memoriesof the processors, they inform to the channel controller 30 theresumption of the acceptance of the access command (step 350).

[0042]FIG. 8 shows a flow chart of the version-up process of the datatransfer control program for the cluster B 220 in the step 145 of FIG.6.

[0043] The service processor 225 sets ‘2’ (suspended mode) in theoperation mode area 720 corresponding to the cluster B of the clusteroperation mode indication information 700 (step 405). Since thenon-existence of the cluster non-restricted job has been confirmed inthe step 310 of the version-up process of the data transfer controlprogram for the cluster A, the confirmation is not necessary here.

[0044] The channel control processors 221 and 222 belonging to thecluster b 220 refer the cluster operation mode indication information700, and when they confirm that the operation mode is set to thesuspended mode, they inform to the channel controller 30 thenon-acceptance of a new access command (step 415). Then, the processors221, 222, 223 and 224 of the cluster B refer the executable processordesignation bit map area 821 of the I/O job execution controlinformation 800 to confirm that the bit corresponding to the processorsof the cluster B is not set (step 420). When the processors 221, 222,223 and 224 confirm that the bit corresponding to the processors of thecluster B of the executable processor designation bit map area 821 isnot set, they inform to the service processor 225 the completion of theshift of their own processors to the suspended state.

[0045] When the service processor 225 receives the notice of completionof the shift of all processors of the cluster B to the suspended state,it sets the operation mode area 720 corresponding to the cluster B ofthe cluster operation mode indication information 700 to ‘3’(maintenance operation mode) (step 426). When the processors 221, 222,22 and 224 of the cluster B confirm that the operation modes have beenset to the maintenance operation mode, they request the transfer of thedata transfer control programs to the service processor 225 (step 427).In response to the request, the service processor 225 transfers the datatransfer control program stored in the disk controller 226 to theprocessors of the cluster B (step 430). The processors 221, 222, 223 and224 store the transferred data transfer program in the local memories oftheir own processors.

[0046] When the processors of the cluster B confirm that the new datatransfer control program has been store in the local memories of allprocessors of the cluster B, they start the execution of the new datatransfer control program. The channel control processors 221 and 222inform the resumption of the acceptance of the access command to thechannel controller 30 (step 440).

[0047] By the maintenance process described above, the data transferprograms executed by the respective processors may be versioned upwithout interfering the processors executing the data transfer controlprograms of different versions. Thus, the maintenance process can beconducted without wholly stopping the disk controller.

[0048]FIG. 9 shows a configuration of the disk controller in accordancewith a second embodiment of the present invention. The presentembodiment has a similar configuration to that of the embodimentdescribed above except that the processors of the disk controller 20′aredivided into four clusters (cluster A 210, cluster b 220, cluster C 270and cluster D 280).

[0049] Where three or more clusters are included as in the presentembodiment, a plurality of combinations of clusters which candistributedly process a job may be defined. In the present embodiment,in order to permit to each processor to recognize the combination ofclusters, distributedly processable cluster combination information isprovided in the control memory 232 in the shared memory 230.

[0050]FIGS. 10 and 11 show formats of the distributedly processablecluster combination information. The distributedly processable clustercombination information 100 includes information indicating whether onejob can be distributedly processed or not among clusters, in a field ata crosspoint of cluster numbers indicated on an ordinate and clusternumbers indicated on an abscissa. For example, the distributedlyprocessable cluster combination information shown in FIG. 10 includesinformation OK indicating the distributed process is accepted in allfields. It indicates that the processors of all clusters have the datatransfer control programs of the same version in their local memoriesand a job my be distributedly processed among any processors of anyclusters. The distributedly processable cluster combination informationshown in FIG. 11 includes information NG indicating that the distributedprocess is not permitted in only the fields of combinations of thecluster A and other clusters. Such setting of the distributedlyprocessable cluster combination information is made only when only theprocessors belonging to the cluster A execute the data transfer programwhich is different from those of the processors of other clusters.

[0051] In the present embodiment, in the data transfer control process,when the executable processor designation bit map 821 of the I/O jobcontrol information 800 is to be set, each processor sets the executableprocessor designation bit map 821 in accordance with the followingcriterion. Namely, it refers the execution cluster indicationinformation 600, and when the execution cluster indication informationarea 610 is set to ‘2’, it refers the distributedly processable clustercombination information 100 and sets ‘1’ in the executability indicationfield corresponding to the processors belonging to other clustercorresponding to the field having OK set therein. When ‘1’ is set in theexecution cluster indication information area 610, the bit ‘1’ is set inthe executability indication fields corresponding to all processors.

[0052] In accordance with the present embodiment, the maintenanceprocess such as the version-up of data transfer program may be conductedin finer unit. In the present embodiment, when the number of clusters isfurther increased, the cluster group for which the version-up of theprogram has been completed is defined as a first set and cluster groupfor which the version-up of the program has not been completed isdefined as a second set, and the maintenance process may be conductedwhile conducing a closed job within each set.

[0053] In the above embodiments, the elements of the disk controller aredirectly connected to each other although they may be connected througha bus. FIG. 12 shows a configuration of the disk controller when theelements are connected by a bus. In FIG. 12, the processors 211, 212,213 and 214, the service processor 215 and the shared memory 230 areconnected through a bus 201. In the disk controller of thisconfiguration, the maintenance process may be conducted for each clusterin the same manner as that described above so that the modification suchas version-up of the control programs executed by the respectiveprocessors may be conducted without wholly stopping the data transfer.

[0054] In accordance with the present invention, the programs ofdifferent versions are executed by the processors of different clustersto avoid the interference of the programs of different versions. Thus,the system maintenance such as the version-up of the program may beconducted without wholly stopping the operation of the multi-processorsystem.

What is claimed is:
 1. A maintenance method of a disk controller connected between a host computer and a disk drive and having a plurality of processors for controlling data transfer between said host computer and said disk drive, comprising the steps of: dividing said processors into a plurality of clusters; shifting a cluster mode from a cluster non-restricted mode in which distributed processing of a job among clusters belonging to any clusters is permitted to a cluster restricted mode in which a cluster to which processors permitted to distributedly process a job belong is restricted; selecting at least one cluster of said plurality of processors as a cluster to be maintained; versioning up programs to be executed by the processors belonging to said cluster to be maintained; and executing the version-up programs by a new program by the processors belonging to said cluster to be maintained.
 2. A maintenance method according to claim 1 wherein said version-up step includes a step for stopping the acceptance of a new job by the processors belonging the said cluster to be maintained, a confirmation step for confirming the non-existence of a job to be processed by the processors belonging to said cluster to be maintained, and a storing step for storing the new program in a local memory of each of the processors belonging to said clusters to be maintained.
 3. A maintenance method according to claim 1 further comprising the step of: repeating said selection step, said version-up step and said execution step sequentially for all clusters.
 4. A maintenance method according to claim 3 further comprising the step of: setting the cluster mode to said cluster non-restricted mode after the programs of the processors of all clusters have been versioned up.
 5. A maintenance method according to claim 1 further comprising the step of: executing a job by the processors belonging to the clusters other than the selected clusters in said cluster restricted mode in parallel to said version-up step.
 6. A disk controller connected between a host computer and a disk drive comprising: a plurality of processors each belonging to one of a plurality of predetermined clusters for controlling data transfer between said host computer and said disk drive; and execution cluster indication means for indication whether processing for an access request of said disk drive issued from said host computer is to be executed in a cluster non-restricted mode in which distributed processing of the access request among all processors is permitted or in a cluster restricted mode in which distributed processing of the access request by processors belonging to different clusters is restricted; said plurality of processors processing the access request in accordance with the mode designated by said execution cluster indication means.
 7. A disk controller according to claim 6 further comprising: processor designation information provided for each access request to designate the processors which can execute the processing of the access request.
 8. A disk controller according to claim 7 further comprising: a terminal device for accepting a program version-up command from an operator; control means for controlling said execution cluster indication means to indicate the cluster restricted mode in accordance with the program version-up command accepted by said terminal device; and version-up means for selecting one of said plurality of clusters, suspending the processing of the access request in the processors belonging to the selected cluster and versioning up programs to be executed by the processors belonging to the selected cluster.
 9. A disk controller according to claim 8 further comprising: a memory for storing a copy of data stored in said disk drive; said plurality of processors including a first plurality of processors for controlling the data transfer between said memory and said host computer and a second plurality of processors for controlling the data transfer between said memory and said disk drive.
 10. A disk controller according to claim 9 wherein each of said clusters includes at least one of said first processors and at least one of said second processors.
 11. A disk controller according to claim 10 further comprising: cluster combination information for indicating a combination of clusters to which the processors which can distributedly process a job belong; said processors each setting information for designating the processors which can distributedly process the job to be executed by its own processor in accordance with said processor designation information.
 12. A program version-up method for a multi-processor system for distributedly processing a job among a plurality of processors each having a local memory for storing a program, comprising the steps of: (a) dividing the processors into a plurality of clusters; (b) shifting a cluster mode indicating a job distribution among the clusters from a cluster non-restricted mode in which the distributed processing of the job among processors of different clusters is permitted to a cluster restricted mode in which the distributed processing of the job among processors of different clusters is inhibited; (c) selecting one cluster from the plurality of clusters as a selected cluster and stopping the acceptance of a new job by the processors in the selected cluster; (d) versioning up programs stored in the local memories of the processors belonging to the selected cluster by new programs; (e) resuming the acceptance of new job by the processors belonging to the selected cluster after the completion of the version-up of the programs; (f) repeating said steps (c) to (e) sequentially for the plurality of clusters; and (g) returning the cluster mode from the cluster restricted mode to the cluster non-restricted mode.
 13. A program version-up method according to claim 12 wherein said step (c) includes a step for confirming that there in no job which is being executed in the cluster non-restricted mode.
 14. A program version-up method according to claim 13 wherein said step (d) includes a step for confirming that there is no job to be processed by the processors belonging to the selected cluster. 